package com.wjm.d20190223_dagger2.demo0;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;

import com.wjm.d20190223_dagger2.DaggerMainActivityComponent;
import com.wjm.d20190223_dagger2.R;

import javax.inject.Inject;

public class MainActivity extends AppCompatActivity {

    private TextView tv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        findViewById();
        initData();
    }

    private void initData() {
//        test0();
        test1();
    }

    /**
     * 使用Dagger2开发方式
     */
    @Inject
    SellMoe sellMoe;
    /**
     * 使用Dagger2开发方式
     * 开发步骤：
     * 1 SellMoe类写注入标记
     * 2 编写注入器接口MainActivityComponent
     * 3 构建项目，生成注入器
     * Build完成后，我们可以使用Dagger2的注入器了，如下(注意弄了半天自动生成不了类原来是要点工具按钮，而不是build)
     * 4 使用注入器
     */
    private void test1() {
        //4 使用注入器
        DaggerMainActivityComponent.create().inject(this);
        tv.setText(sellMoe.sellMoe());
    }

    /**
     * 常规手段开发要手动new这个对象才能拿到些对象的引用
     */
    private void test0() {
        //常规手段开发要手动new这个对象才能拿到些对象的引用
//        SellMoe sellMoe = new SellMoe();
//        tv.setText(sellMoe.sellMoe());
    }

    private void findViewById() {
        tv = (TextView) findViewById(R.id.tv);
    }
}
